#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
const int N = 5e3 + 10;
int f[N][N];
int a[N][N];
int n, m;
int main()
{
	cin >> n >> m;
	while (n--)
	{
		int x, y, v; cin >> x >> y >> v;
		a[++x][++y] += v;
	}
	n = 5009;
	for (int i = 1; i <= n;i ++)
		for (int j = 1; j <= n; j++)
			f[i][j] = a[i][j] + f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1];
	int ret = 0;
	m = min(m, n);
	for (int x2 = m; x2 <= n; x2++)
	{
		for (int y2 = m; y2 <= n; y2++)
		{
			int x1 = x2 - m + 1, y1 = y2 - m + 1;
			int sum = f[x2][y2] - f[x1 - 1][y2] - f[x2][y1 - 1] + f[x1 - 1][y1 - 1];
			ret = max(sum, ret);
		}
	}
	cout << ret << endl;
	return 0;
}


